(function ($) { $(document).ready(function () { // Campos que siempre deben estar ocultos const camposSiempreOcultos = [ '.field-name-field-marca', '.field-name-field-modelo' ]; const camposOcultarEnConcesion = [ '.field-name-field-tipo-proyecto', ]; const camposSoloEnConcesion = [ '.field-name-field-destino', '.field-name-field-plazo', '.field-name-field-tipo-de-plazo', '.field-name-field-objeto' ]; const camposOcultarEnMueble = [ '.field-name-field-tipo-proyecto', '.field-name-field-superficie-decimal', '.field-name-field-ba-os', '.field-name-field-ambientes', '.field-name-field-dormitorios', '.field-name-field-cocheras', '.field-name-field-metros-cuadrados-cubiertos', '.field-name-field-antig-edad', '.group-domicilio-propiedad', '.group-mapa' ]; const camposSoloEnMuebles = [ '.field-name-field-tipo-de-bien', '.field-name-field-kilometraje', '.field-name-field-a-o', '.field-name-field-dominio', '.field-name-field-etiqueta-del-bien', '.field-name-field-descripci-n-del-bien' ]; // Función para ocultar campos que siempre deben estar ocultos function ocultarCamposSiempre() { camposSiempreOcultos.forEach(selector => $(selector).hide()); } // Función para cambiar el label del campo descripción según la etiqueta seleccionada function cambiarLabelDescripcion() { var etiquetaSeleccionada = $('#edit-field-etiqueta-del-bien-und').val(); var labelDescripcion = $('label[for="edit-field-descripci-n-del-bien-und-0-value"]'); if (etiquetaSeleccionada === 'marca_modelo') { labelDescripcion.text('Marca / modelo'); } else { // Restaurar el label original (puedes ajustar este texto según el label original) labelDescripcion.text('Descripción del bien'); } } function toggleSubtipo() { var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val(); if (tipoSeleccionado === 'aabe-mueble') { $('#edit-field-subtipo-aabe').hide(); } else { $('#edit-field-subtipo-aabe').show(); } } function togglePorSubtipo() { var subtipoSeleccionado = $('input[name="field_subtipo_aabe[und]"]:checked').val(); var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val(); // Asegurarse de que los campos de concesión solo se muestren cuando el tipo NO es mueble if (subtipoSeleccionado === 'concesion' && tipoSeleccionado !== 'aabe-mueble') { camposOcultarEnConcesion.forEach(selector => $(selector).hide()); camposSoloEnConcesion.forEach(selector => $(selector).show()); } else { camposOcultarEnConcesion.forEach(selector => $(selector).show()); camposSoloEnConcesion.forEach(selector => $(selector).hide()); } // Cambiar etiqueta de "Precio base" a "Canon base" si es concesión e inmueble if (subtipoSeleccionado === 'concesion' && tipoSeleccionado !== 'aabe-mueble') { // $('label[for="edit-field-precio-subasta-und-0-value"]').text('Canon base'); $('label[for="edit-field-precio-subasta-decimal-und-0-value"]').text('Canon base'); } else { // $('label[for="edit-field-precio-subasta-und-0-value"]').text('Precio base'); $('label[for="edit-field-precio-subasta-decimal-und-0-value"]').text('Precio base'); } } function togglePorTipo() { var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val(); if (tipoSeleccionado === 'aabe-mueble') { camposOcultarEnMueble.forEach(selector => $(selector).hide()); camposSoloEnMuebles.forEach(selector => $(selector).show()); camposSoloEnConcesion.forEach(selector => $(selector).hide()); } else { camposOcultarEnMueble.forEach(selector => $(selector).show()); camposSoloEnMuebles.forEach(selector => $(selector).hide()); togglePorSubtipo(); } // Cambiar solo el primer título del fieldset sin duplicar texto const tituloFieldset = $('.group-propiedad-subasta .fieldset-title').first(); const span = tituloFieldset.find('span'); const nuevoTexto = (tipoSeleccionado === 'aabe-mueble') ? ' Información del bien mueble' : ' Información de la propiedad'; tituloFieldset.html(span.prop('outerHTML') + nuevoTexto); // Asegurarse de que los campos siempre ocultos permanezcan ocultos ocultarCamposSiempre(); } // Ejecutar funciones iniciales ocultarCamposSiempre(); toggleSubtipo(); togglePorSubtipo(); togglePorTipo(); cambiarLabelDescripcion(); // Ejecutar al cargar la página $('input[name="field_tipo_aabe[und]"]').change(function () { toggleSubtipo(); togglePorTipo(); // Esto incluye ocultar campos de concesión si se cambia a mueble }); $('input[name="field_subtipo_aabe[und]"]').change(function () { togglePorSubtipo(); // Asegurarse de que los campos siempre ocultos permanezcan ocultos ocultarCamposSiempre(); }); // Event listener para el cambio en el campo etiqueta del bien $('#edit-field-etiqueta-del-bien-und').change(function () { cambiarLabelDescripcion(); }); }); })(jQuery); Drupal.behaviors.requiredAsterisk = { attach: function (context, settings) { function toggleAsterisk() { var selectedValue = jQuery('input[name="field_tipo_aabe[und]"]:checked').val(); var campos = [ '#edit-field-superficie-decimal-und-0-value', '#edit-field-domicilio-calle-prop-und-0-value', '#edit-field-latitud-und-0-value', '#edit-field-longitud-und-0-value' ]; campos.forEach(function (selector) { var label = jQuery(selector, context).closest('.form-item').find('label'); if (selectedValue === 'aabe-inmueble') { // Agregar asterisco si no existe if (label.find('.form-required').length === 0) { label.append('*'); } } else if (selectedValue === 'aabe-mueble') { // Quitar asterisco si existe label.find('.form-required').remove(); } }); } // Ejecutar al cargar toggleAsterisk(); // Escuchar cambios en el radio jQuery('input[name="field_tipo_aabe[und]"]', context).once('asterisk-handler').change(function () { toggleAsterisk(); }); } }; (function ($) { Drupal.behaviors.disableEstados = { attach: function (context, settings) { function deshabilitarEstados(opciones) { $('#edit-field-estados-subasta-und', context) .find('option') .prop('disabled', false) // habilita todas primero .filter(function () { return opciones.includes($(this).val()); }) .prop('disabled', true); } function aplicarReglas() { var subtipoSeleccionado = $('input[name="field_subtipo_aabe[und]"]:checked').val(); var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val(); if (tipoSeleccionado === 'aabe-inmueble' && subtipoSeleccionado !== 'concesion') { deshabilitarEstados(['subastado', 'adjudicado']); } else if (tipoSeleccionado === 'aabe-mueble') { deshabilitarEstados(['subastado', 'desierta']); } else if (tipoSeleccionado === 'aabe-inmueble' && subtipoSeleccionado === 'concesion') { deshabilitarEstados(['subastado', 'desierta']); } } // Ejecutar al cargar la página aplicarReglas(); // Ejecutar al cambiar el tipo o subtipo $('input[name="field_tipo_aabe[und]"], input[name="field_subtipo_aabe[und]"]', context) .once('disableEstadosChange') // evita múltiples binds .on('change', function () { aplicarReglas(); }); } }; })(jQuery);